Motion estimation is an effective inter-frame coding technique to exploit temporal redundancy in video sequences. Motion-compensated inter-frame coding has been widely used in various international video coding standards. The motion estimation adopted in various coding standards is often a block-based technique, where motion information such as coding mode and motion vector is determined for each macroblock or similar block configuration. For motion compensation prediction (MCP) coding, a current block is predicted by a reference block. The displacement between current block and reference block is referred to as motion vector (MV). The motion vector is signaled to the decoder. When two reference blocks are used, i.e. bi-directional prediction, two motion vectors are signaled. The inter-predicted or intra-predicted residues are usually further processed by transformation, quantization, and entropy coding to generate compressed video bitstream.
To reduce the amount of data used for coding motion vectors, motion vector predictor (MVP) has been widely used in advanced coding standard such as High Efficiency Video Coding (HEVC). The MVP is derived from spatial or temporal neighboring coded blocks. For example, multiple MVPs are used in AMVP (advanced motion vector prediction) and merge modes in HEVC. It is desirable to further improve the coding efficiency of MVP.